package database_beans;
// Generated Feb 13, 2014 2:57:58 AM by Hibernate Tools 3.6.0


import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

/**
 * Zaposleni generated by hbm2java
 */
@Entity
@Table(name="zaposleni"
    ,catalog="pia"
)
public class Zaposleni  implements java.io.Serializable {


     private int idKorisnik;
     private Korisnik korisnik;
     private String adresa;
     private String telefon;
     private String mail;
     private String web;
     private String cv;
     private String zvanje;
     private String istekUgovora;
     private String kabinet;
     private String prijem;
     private String status;
     private byte[] slika;
     private Set<PlanAngazovanja> planAngazovanjas = new HashSet<PlanAngazovanja>(0);
     private Set<Publikacije> publikacijes = new HashSet<Publikacije>(0);
     private Set<Materijali> materijalis = new HashSet<Materijali>(0);

    public Zaposleni() {
    }

	
    public Zaposleni(Korisnik korisnik, String adresa, String telefon, String mail, String zvanje, String status) {
        this.korisnik = korisnik;
        this.adresa = adresa;
        this.telefon = telefon;
        this.mail = mail;
        this.zvanje = zvanje;
        this.status = status;
    }
    public Zaposleni(Korisnik korisnik, String adresa, String telefon, String mail, String web, String cv, String zvanje, String istekUgovora, String kabinet, String prijem, String status, byte[] slika, Set<PlanAngazovanja> planAngazovanjas, Set<Publikacije> publikacijes, Set<Materijali> materijalis) {
       this.korisnik = korisnik;
       this.adresa = adresa;
       this.telefon = telefon;
       this.mail = mail;
       this.web = web;
       this.cv = cv;
       this.zvanje = zvanje;
       this.istekUgovora = istekUgovora;
       this.kabinet = kabinet;
       this.prijem = prijem;
       this.status = status;
       this.slika = slika;
       this.planAngazovanjas = planAngazovanjas;
       this.publikacijes = publikacijes;
       this.materijalis = materijalis;
    }
   
     @GenericGenerator(name="generator", strategy="foreign", parameters=@Parameter(name="property", value="korisnik"))@Id @GeneratedValue(generator="generator")

    
    @Column(name="id_korisnik", unique=true, nullable=false)
    public int getIdKorisnik() {
        return this.idKorisnik;
    }
    
    public void setIdKorisnik(int idKorisnik) {
        this.idKorisnik = idKorisnik;
    }

@OneToOne(fetch=FetchType.LAZY)@PrimaryKeyJoinColumn
    public Korisnik getKorisnik() {
        return this.korisnik;
    }
    
    public void setKorisnik(Korisnik korisnik) {
        this.korisnik = korisnik;
    }

    
    @Column(name="adresa", nullable=false, length=45)
    public String getAdresa() {
        return this.adresa;
    }
    
    public void setAdresa(String adresa) {
        this.adresa = adresa;
    }

    
    @Column(name="telefon", nullable=false, length=45)
    public String getTelefon() {
        return this.telefon;
    }
    
    public void setTelefon(String telefon) {
        this.telefon = telefon;
    }

    
    @Column(name="mail", nullable=false, length=45)
    public String getMail() {
        return this.mail;
    }
    
    public void setMail(String mail) {
        this.mail = mail;
    }

    
    @Column(name="web", length=45)
    public String getWeb() {
        return this.web;
    }
    
    public void setWeb(String web) {
        this.web = web;
    }

    
    @Column(name="cv", length=45)
    public String getCv() {
        return this.cv;
    }
    
    public void setCv(String cv) {
        this.cv = cv;
    }

    
    @Column(name="zvanje", nullable=false, length=45)
    public String getZvanje() {
        return this.zvanje;
    }
    
    public void setZvanje(String zvanje) {
        this.zvanje = zvanje;
    }

    
    @Column(name="istek_ugovora", length=45)
    public String getIstekUgovora() {
        return this.istekUgovora;
    }
    
    public void setIstekUgovora(String istekUgovora) {
        this.istekUgovora = istekUgovora;
    }

    
    @Column(name="kabinet", length=45)
    public String getKabinet() {
        return this.kabinet;
    }
    
    public void setKabinet(String kabinet) {
        this.kabinet = kabinet;
    }

    
    @Column(name="prijem", length=45)
    public String getPrijem() {
        return this.prijem;
    }
    
    public void setPrijem(String prijem) {
        this.prijem = prijem;
    }

    
    @Column(name="status", nullable=false, length=45)
    public String getStatus() {
        return this.status;
    }
    
    public void setStatus(String status) {
        this.status = status;
    }

    
    @Column(name="slika")
    public byte[] getSlika() {
        return this.slika;
    }
    
    public void setSlika(byte[] slika) {
        this.slika = slika;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="zaposleni")
    public Set<PlanAngazovanja> getPlanAngazovanjas() {
        return this.planAngazovanjas;
    }
    
    public void setPlanAngazovanjas(Set<PlanAngazovanja> planAngazovanjas) {
        this.planAngazovanjas = planAngazovanjas;
    }

@ManyToMany(fetch=FetchType.LAZY)
    @JoinTable(name="zaposleni_has_publikacije", catalog="pia", joinColumns = { 
        @JoinColumn(name="zaposleni_id_korisnik", nullable=false, updatable=false) }, inverseJoinColumns = { 
        @JoinColumn(name="publikacije_id_poblikacije", nullable=false, updatable=false) })
    public Set<Publikacije> getPublikacijes() {
        return this.publikacijes;
    }
    
    public void setPublikacijes(Set<Publikacije> publikacijes) {
        this.publikacijes = publikacijes;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="zaposleni")
    public Set<Materijali> getMaterijalis() {
        return this.materijalis;
    }
    
    public void setMaterijalis(Set<Materijali> materijalis) {
        this.materijalis = materijalis;
    }

    @Override
    public String toString() {
        return korisnik.getIme() + " " + korisnik.getPrezime();
    }


}


